A business project generally includes a plurality of tasks. Some tasks are typically dependent on other tasks. The dependent tasks typically should start after other tasks are finished. Typically, the tasks of a project are organized as a workflow, which should follow a plurality of constraints (e.g., the finish time of the project and the resources could be assigned to different tasks). The assignment of available resources to different tasks in a proper way so that all the constraints could be fulfilled while other business objectives could be optimized (e.g., maximizing profit) is typically a goal of task assignment.
For simple projects, task assignment can be performed by experienced management personnel (even considering the above constraints). However, with the increase of productivity and the rapid development of globalization, business projects become so large and complex that the optimal assignment decision can not be determined based only on the previous experience of management (or other organizational) personnel.
The task assignment problem could be formalized as an optimization problem. But the optimization is difficult for large projects. Global optimization methods need to check all possible assignment combinations and find out the optimal feasible combination. These methods are computationally expensive and usually impossible to compute under current information technology (IT) infrastructures for large projects. As an example, for a project with 20 tasks, assuming each task has 5 candidate ways to be assigned, the total number of combinations is 520≈9.5×1013. Some methods could filter out all infeasible combinations and do not need to investigate all feasible combinations. However, the methods still need large amounts of computation time and suffer from a lack of scalability to larger projects. Deterministic local optimization methods check the assignment combinations of limited number of tasks while keeping the assignment of other tasks fixed. These methods are conducted in an iterative manner. During each iteration a small number of tasks are randomly selected. The algorithm determines the optimal assignment for these tasks and replaces previous assignment of these tasks. The process is run until no further improvement could be achieved. Deterministic local optimization methods are guaranteed to converge. However, they often get stuck in local optima that are far from global optimal.
Accordingly, there is a need to address the aforementioned problems by providing quantitative methods to guide the task assignment decision. The quantitative methods should minimize or reduce the use of deterministic local optimization methods so as to minimize or reduce the use of IT resources.